// 使用 Node.js 内置的 fetch API (Node.js 18+)
const BASE_URL = 'http://localhost:4000';

async function testMenuAPI() {
  console.log('🧪 测试菜单API...\n');

  try {
    // 测试健康检查
    console.log('1. 测试健康检查...');
    const healthResponse = await fetch(`${BASE_URL}/health`);
    if (!healthResponse.ok) {
      throw new Error(`HTTP ${healthResponse.status}: ${healthResponse.statusText}`);
    }
    const healthData = await healthResponse.json();
    console.log('✅ 健康检查:', healthData);
    console.log('');

    // 测试菜单API（需要认证）
    console.log('2. 测试菜单API（未认证）...');
    try {
      const menuResponse = await fetch(`${BASE_URL}/api/menu/user-menu`);
      if (menuResponse.status === 401) {
        console.log('✅ 菜单API权限控制正常 - 需要认证');
      } else {
        const menuData = await menuResponse.json();
        console.log('✅ 菜单API响应:', menuData);
      }
    } catch (error) {
      console.log('⚠️  菜单API测试:', error.message);
    }
    console.log('');

    console.log('🎉 测试完成！');
    console.log('💡 要测试完整的菜单功能，请先启动后端服务并登录获取token');

  } catch (error) {
    console.error('❌ 测试失败:', error.message);
    console.log('');
    console.log('🔧 请确保：');
    console.log('   1. 后端服务已启动 (在backend目录下运行: npm run dev)');
    console.log('   2. 数据库已连接');
    console.log('   3. 端口4000未被占用');
    console.log('   4. 使用 Node.js 18+ 版本');
  }
}

// 检查 Node.js 版本
const nodeVersion = process.version;
const majorVersion = parseInt(nodeVersion.slice(1).split('.')[0]);

if (majorVersion < 18) {
  console.error('❌ 需要 Node.js 18+ 版本');
  console.log('当前版本:', nodeVersion);
  console.log('请升级到 Node.js 18 或更高版本');
  process.exit(1);
}

testMenuAPI();
